【PHP/演習問題】クラスメソッド[2]
問題
次の実行結果になる家クラスを扱うプログラムを作成してください。
なお、下記条件を満たすものとします。
- 家クラスを作成する
- 家クラスのフィールドは面積(単位:畳)とする
- 家クラスのインスタンスを3つ生成し、各面積(畳)は次の通りとする
1つ目 : 6
2つ目 : 14
3つ目 : 30 - 家クラスのインスタンスの初期値はコンストラクタで設定する
- 畳の高さ(1.82m)と横幅(0.91m)を記憶するクラス変数を定義する
- 1畳あたりの平方メートルを戻り値として返すarea_per_tatamiメソッドを作成する。
※ area_per_tatamiはクラスメソッドとします。 - area_per_tatamiメソッドを使って家の面積(平方メートル)を出力するareaメソッドを作成する
面積 : 9.9372平方メートル
面積 : 23.1868平方メートル
面積 : 49.686平方メートル
解答例
<?php
class House {
public static $tatami_heihgt = 1.82;
public static $tatami_width = 0.91;
public $tatami;
public function __construct( $tatami ) {
$this->tatami = $tatami;
}
public static function area_per_tatami() {
return House::$tatami_heihgt * House::$tatami_width;
}
public function area() {
$area = House::area_per_tatami() * $this->tatami;
echo "面積 : ".$area."平方メートル\n";
}
}
$house1 = new House(6);
$house2 = new House(14);
$house3 = new House(30);
$house1->area();
$house2->area();
$house3->area();
?>